package com.seafwg;

/**
 * @Author seafwg
 * @Date 2022/7/27 17:36
 * @Version 1.0
 * @Description 通过实现Runnable接口创建线程
 * 创建多线程的方式二：实现Runnable接口
 *  1.创建一个实现Runnable接口的类
 *  2.实现类实现Runnable中的抽象方法：run()
 *  3.创建实现类的对象
 *  4.将此对象作为参数传递到Thread类的构造器中创建Thread类的对象
 *  5.通过Thread类的对象调用start()方法
 *      1⃣️启动当前线程2⃣️调用当前线程的run()方法
 */

public class ImplRunnaleTest {
    public static void main(String[] args) {
        MyThread0 m = new MyThread0();
        // 4.实现类的对象作为参数传递给Thread类的构造器生成Thread对象，
        // 通过生成的对象调用start()方法启动线程
        Thread t = new Thread(m);
        t.start();

        Thread t1 = new Thread(m);
        t1.start();

        // 创建Thread类的匿名子类对象
        // 接口多态形式---匿名子类实现Runnable接口的匿名对象

        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 100; i++) {
                    if (i % 2 == 0) {
                        System.out.println(Thread.currentThread().getName()+ ":" + i);
                    }
                }
            }
        }).start();
    }
}


class MyThread0 implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            if (i % 2 == 0) {
                System.out.println(Thread.currentThread().getName() + ":" + i);
            }
        }
    }
}